import { File } from "../model/file";

export interface ServiceFileAfterUploadParams {
  key?: string;
  hash: string;
  ftype: File['type'];
  fsize: number;
  bucket: 'mengti' | 'mtcdn';
  name?: string;
  shop_id?: number;
  uid: string;
  w: number;
  h: number;
  persistentId: string;
  avinfo: string;
}

interface VideoFormatItem {
  cmd: string;
  hash: string;
  code: number;
  key: string;
}

/**
 * @name 文件转码回调
 */
export interface ServiceFileAfterFormatParams {
  code: number;
  persistentId: string;
  bucket: string;
  hash: string;
  items: VideoFormatItem[];
}

/**
 * @name 前端回调
 * @deprecated
 */
export interface ServiceFileCallbackParams {
  uid: string;
  hash: string;
  need_file_id?: boolean;
}

export interface ServiceFileGetMemberUpToken {
  t?: File['t'];
  filename?: string;
  name?: string;
  type?: File['type'];
  size?: number;
  uid?: string;
}

/**
 * [API] 获取文件上传 upToken
 */
export interface ServiceFileGetUpToken {
  t?: File['t'];
  filename?: string;
  name?: string;
  type?: File['type'];
  size: number;
  uid?: string;
  w?: number;
  h?: number;
}

export interface ServiceFileFetchParams {
  urls: string[];
}

export interface ServiceFileFetchResult {
  /**
   * 批量拉取结果
   * 注意： 元素可能为空 如果拉取失败的话 需要判断
   */
  hashs: string[];
  file_ids: number[];
}

/**
 * [API] 获取文件列表
 */
export interface ServiceFileGetParams {
  // 主键ID 如果传入ID则只返回一个项目
  id?: number;
  currentPage?: number;
  pageSize?: number;
  /**
   * 是否返回总量统计
   */
  count?: boolean;
  filterForm?: {
    /**
     * 文件类型
     * 1 图片
     * 2 视频
     * 3 音频
     * 4 文件
     */
    t?: 1 | 2 | 3 | 4;
    /**
     * 查询本人上传的文件
     */
    user_id?: number;
    /**
     * 查询本店上传的问题
     */
    shop_id?: number;
    /**
     * 通过hash值搜索
     */
    hash?: string;
  };
}
